package com.yy.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.yy.interceptor.StevenInterceptor;

/**
 * 自定义的拦截器注册类
 * 	1. 继承WebMvcConfigurerAdapter
 * 	2. 重写addInterceptor方法
 * 	3. registry.addInterceptor(自定义拦截器).addPathPatterns(需要拦截的url请求)
 * @author ls
 *
 */
@Configuration
/*
 * 用 @Configuration 标记此类.使其能够被SpringBoot扫描到.( @Bean也行,但是@Bean需要有返回值 )
 */
public class MySpringInterceptorRegister extends WebMvcConfigurerAdapter {

	/**
	 * 添加自定义过滤器
	 */
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(new StevenInterceptor())
				.addPathPatterns("/*");
		super.addInterceptors(registry);
	}

	/**
	 * 添加静态文件映射
	 * 
	 * 默认配置:
	 * 		其中默认配置  /* 映射到 /static ( 或者/resources 或者/META-INF/resources 或者/public )
	 *	 	默认配置的 /webjars/** 映射到 classpath:/META-INF/resources/webjars/
	 * 		上述的 static、public、resources 等目录都在 classpath: 下面（如 src/main/resources/static）。
	 * 	 注意:
	 * 		个人测试: 当静态文件名称一样时. 路径优先级: /META-INF/resources  -->  /resources  -->  /static  -->  /public
	 * 
	 * 自定义配置:
	 * 		1. 继承WebMvcConfigurerAdapter
	 * 		2. 重写addResourceHandlers方法
	 * 		3. registry.addResourceHandler(访问路径).addResourceLocations(映射路径);
	 * 		注: 映射路径 classpath: 项目中路径 ; file: 磁盘中绝对路径
	 * 
	 * -------------------------------------------------------------------------------------------------
	 * 
	 * 还可以在配置文件中配置.但是不推荐使用 ( 不支持逗号分隔.相当于只能配置一个路径映射 )
	 */
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/image/*")
				.addResourceLocations("classpath:/images/");
		registry.addResourceHandler("/pic/*")
				.addResourceLocations("file:C:/Users/SEELE/Desktop/");
		super.addResourceHandlers(registry);
	}
	
}
